package com.itlong.cloud.sdk.dao;

import com.itlong.cloud.POJO.DTO.sdk.sendPush.SendPushMessageDTO;
import com.itlong.cloud.POJO.VO.property.PropertyEquipRecordGetVO;
import com.itlong.cloud.POJO.VO.property.PropertyVisitorPassRecordGetVO;
import com.itlong.cloud.POJO.VO.sdk.SDKEquipRecordGetVO;
import com.itlong.cloud.POJO.VO.sdk.SDKProjectBuildInfoVO;
import com.itlong.cloud.POJO.VO.sdk.SDKProjectRoomInfoVO;
import com.itlong.cloud.POJO.VO.sdk.SDKProjectUnitInfoVO;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * <desc>
 *      SDK项目Dao
 * </desc>
 *
 * @createDate 2019/11/8
 */
@Mapper
@Repository
public interface ISDKServerProjectDao{

    /**
     * <desc>
     *     查询总楼栋数
     * </desc>
     *
     * @param params 查询条件参数集
     * @return 总楼栋数
     * @author Juguang.S
     * @createDate 2019/11/8
     */
    Integer getBuildInfoCount(Map<String, Object> params);

    /**
     * <desc>
     *     查询楼栋信息列表
     * </desc>
     *
     * @param params 查询条件参数集
     * @return 楼栋信息列表
     * @author Juguang.S
     * @createDate 2019/11/8
     */
    List<SDKProjectBuildInfoVO> getBuildListByPage(Map<String, Object> params);

    /**
     * <desc>
     *     查询楼栋单元数
     * </desc>
     *
     * @param params 查询条件参数集
     * @return 总楼栋单元数
     * @author Juguang.S
     * @createDate 2019/11/8
     */
    Integer getBuildUnitInfoCount(Map<String, Object> params);

    /**
     * <desc>
     *     查询楼栋单元信息列表
     * </desc>
     *
     * @param params 查询条件参数集
     * @return 楼栋单元信息列表
     * @author Juguang.S
     * @createDate 2019/11/8
     */
    List<SDKProjectUnitInfoVO> getBuildUnitListByPage(Map<String, Object> params);

    /**
     * <desc>
     *     查询项目房间数量
     * </desc>
     *
     * @param params 查询条件参数集
     * @return 总房间数
     * @author Juguang.S
     * @createDate 2019/11/8
     */
    Integer getRoomInfoCount(Map<String, Object> params);

    /**
     * <desc>
     *     查询项目房间信息列表
     * </desc>
     *
     * @param params 查询条件参数集
     * @return 房间信息列表
     * @author Juguang.S
     * @createDate 2019/11/8
     */
    List<SDKProjectRoomInfoVO> getRoomListByPage(Map<String, Object> params);

    /**
     * <desc>
     *      分页查询电梯通行记录
     * <desc/>
     *
     * @param params 查询条件参数集
     * @return 电梯通行记录
     * @author Juguang.S
     * @createDate 2019/11/11
     */
    List<SDKEquipRecordGetVO> getElevatorRecordByPage(Map<String, Object> params);

    /**
     * <desc>
     *      分页查询电梯通行记录数量
     * <desc/>
     *
     * @param params 查询条件参数集
     * @return 电梯通行记录数量
     * @author Juguang.S
     * @createDate 2019/11/11
     */
    Integer getElevatorRecordCount(Map<String, Object> params);

    /**
     * <desc>
     *      分页查询门禁通行记录
     * <desc/>
     *
     * @param params 查询条件参数集
     * @return 门禁通行记录
     * @author Juguang.S
     * @createDate 2019/11/11
     */
    List<SDKEquipRecordGetVO> getEntranceRecordByPage(Map<String, Object> params);

    /**
     * <desc>
     *      分页查询门禁通行记录数量
     * <desc/>
     *
     * @param params 查询条件参数集
     * @return 门禁通行记录数量
     * @author Juguang.S
     * @createDate 2019/11/11
     */
    Integer getEntranceRecordCount(Map<String, Object> params);

    /**
     * <desc>
     *      分页查询云对讲通行记录
     * <desc/>
     *
     * @param params 查询条件参数集
     * @return 云对讲通行记录数量
     * @author Juguang.S
     * @createDate 2019/11/11
     */
    List<SDKEquipRecordGetVO> getCloudIntercomRecordByPage(Map<String, Object> params);

    /**
     * <desc>
     *      分页查询云对讲通行记录数量
     * <desc/>
     *
     * @param params 查询条件参数集
     * @return 云对讲通行记录数量
     * @author Juguang.S
     * @createDate 2019/11/11
     */
    Integer getCloudIntercomRecordCount(Map<String, Object> params);

    /**
     * <desc>
     *     访客通行记录数据
     * <desc/>
     *
     * @param params 查询条件参数集
     * @return 访客通行记录数量
     * @author Juguang.S
     * @createDate 2019/11/11
     */
    List<SDKEquipRecordGetVO> getVisitorPassRecordByPage(Map<String, Object> params);

    /**
     * <desc>
     *     访客通行记录数量
     * <desc/>
     *
     * @param params 查询条件参数集
     * @return 访客通行记录数量
     * @author Juguang.S
     * @createDate 2019/11/11
     */
    Integer getVisitorPassRecordCount(Map<String, Object> params);

    /**
     * <desc>
     *     根据日期删除访客通行记录
     * <desc/>
     *
     * @param params 查询条件参数集
     * @return 访客通行记录数量
     * @author Qiang.S
     * @createDate 2020/07/02
     */
    Integer deleteVisitorRecordByDate(Map<String, Object> params);

    /**
     * <desc>
     *     根据日期删除电梯通行记录
     * <desc/>
     *
     * @param params 查询条件参数集
     * @return 访客通行记录数量
     * @author Qiang.S
     * @createDate 2020/07/02
     */
    Integer deleteElevatorRecordByDate(Map<String, Object> params);

    /**
     * <desc>
     *     根据日期删除门禁通行记录
     * <desc/>
     *
     * @param params 查询条件参数集
     * @return 访客通行记录数量
     * @author Qiang.S
     * @createDate 2020/07/02
     */
    Integer deleteEntranceRecordByDate(Map<String, Object> params);

    /**
     * <desc>
     *     根据日期删除云对讲通行记录
     * <desc/>
     *
     * @param params 查询条件参数集
     * @return 访客通行记录数量
     * @author Qiang.S
     * @createDate 2020/07/02
     */
    Integer deleteIntercomRecordByDate(Map<String, Object> params);

    
    /**
    *<desc>
    * 查询第三方消息回调地址
    *</desc>
    *
    * @Author  chengshican
    * @Date   2020-11-23 11:08
    * @Param  
    * @Return      
    * @Exception   
    * 
    */
    List<SendPushMessageDTO> getSendMessgeUrl();

    
    /**
    *<desc>
    * 修改第三方对接接口的版本号
    *</desc>
    *
    * @Author  chengshican
    * @Date   2020-11-23 11:09
    * @Param  
    * @Return      
    * @Exception   
    * 
    */
    Integer updateSDKApiVersion(Map<String, Object> params);

}
